package Database;



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.*;

public class BazaDate {
	private Connection conexiune = null;

	/**
	 * Utilizare pentru conectare la BD. Returneaza true daca s-a realizat
	 * conectarea cu succes, false altfel.
	 *
	 * @return
	 */
	public boolean conecteaza() {
		try {
			String nume = "root";
			String parola = "";
			String bd = "statii";
			String url = "jdbc:mysql://localhost:3306/" + bd;
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			conexiune = DriverManager.getConnection(url, nume, parola);
			System.out.println("Conectare la BD cu succes.");
			return true;
		} catch (Exception e) {
			return false;
		}
	}
        public Connection conexiune(){
            return this.conexiune;
        }

	/**
	 * Utilizare pentru deconectare de la BD. Returneaza true daca s-a realizat
	 * deconectarea cu succes, false altfel.
	 *
	 */
	public boolean deconecteaza() {
		try {
			conexiune.close();
			System.out.println("Deconectare de la BD cu succes.");
			return true;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}
	}

	/**
	 * Utilizare pentru SELECT-uri hard-coded. Returneaza un obiect de tip
	 * ResultSet cu randurile obtinute.
	 *
	 * @param query
	 * @return
	 * @throws SQLException
	 */
	public ResultSet doQuery(final String query) throws SQLException {
		Statement s = conexiune.createStatement();
		return s.executeQuery(query);
	}

	/**
	 * Utilizare pentru SELECT-uri care contin date introduse de utilizator.
	 * Returneaza un obiect de tip ResultSet cu randurile obtinute.
	 *
	 * @param query
	 * @param parameters
	 * @return
	 * @throws SQLException
	 */
	public ResultSet doQuery(final String query, final Object[] parameters)
			throws SQLException {
		PreparedStatement s = conexiune.prepareStatement(query);
		for (int i = 0; i < parameters.length; i++) {
			s.setObject(i + 1, parameters[i]);
		}
		return s.executeQuery();
	}

	public String afiseaza(ResultSet rs) {
		String rez = "";
		try {
			while (rs.next()) {
				rez += rs.getString(1) + "; ";
				// System.out.print(rez + "; ");
			}
			// System.out.println();
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}
		return rez;
	}

	
}

